home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / smaltalk / manchest.lha / MANCHESTER / manchester / 4.1 / DialogView-front.st < prev    next >
Text File  |  1993-07-24  |  2KB  |  58 lines

  1. "    NAME        DialogView-front
  2.     AUTHOR        bernard@is.morgan.com (Bernard Horan)
  3.     FUNCTION    Code to keep DialogViews to the front
  4.     ST-VERSION    4.1 (OpenWindows)
  5.     PREREQUISITES    
  6.     CONFLICTS    
  7.     DISTRIBUTION    world
  8.     VERSION        1
  9.     DATE         Sep 1992
  10. SUMMARY
  11. One of the problems with the current version of PPS Smalltalk is the 
  12. disjunction between Smalltalk's window manager (ControlManager) and the
  13. host window manager. This is most noticeable when using dialogViews
  14. (the YesNo and FillInTheBlank type), as they can easily get lost behind
  15. larger Smalltalk windows and consequently give the impression to the
  16. average user (and some programmers) that the system has hung.
  17.  
  18. Included below is a fix for the problem, it has only been tested
  19. on OpenWindows, and I would appreciate any reports of bugs etc. before
  20. I submit it to the goodies archive. This fix doen't overcome the
  21. problem of menus also disappearing in a similar manner, but I reckon
  22. that's less common anyway.
  23.  
  24. Bern
  25. "
  26.  
  27. 'From Objectworks\Smalltalk(R), Release 4.1 of 15 April 1992 on 28 September 1992 at 9:11:11 am'!
  28.  
  29.  
  30.  
  31. !StandardSystemController methodsFor: 'accessing'!
  32.  
  33. unknownEvent: anEvent
  34.     "do nothing"! !
  35.  
  36.  
  37. !DialogController methodsFor: 'accessing'!
  38.  
  39. unknownEvent: anEvent 
  40.     "Some unknown window manager event has happened, let's assume it 
  41.     means 
  42.     that we need to bring my window back to the front. 
  43.     Bernard Horan, 28 September 1992"
  44.  
  45.     self view isNil ifFalse: [self view raise]! !
  46.  
  47.  
  48. !ScheduledWindow methodsFor: 'events'!
  49.  
  50. processEvent: anEvent 
  51.     "Dispatch the event to the appropriate method."
  52.  
  53.     anEvent key == #resize ifTrue: [self extentEvent: anEvent value].
  54.     anEvent key == #close ifTrue: [self controller close].
  55.     anEvent key == #eventUnknown ifTrue: ["Send the event as argument, just in case I ever get to understand its significance" self controller unknownEvent: anEvent]! !
  56.  
  57.  
  58.